у меня есть 2D массив символов:
char nm[MAX1][MAX2] = { "john", "bob", "david" };
Я хочу поменять два из этих элементов (без std::swap
) просто писать
swapPointers(nm[0], nm[1]);
где swapPointers
выглядит следующим образомПрозрачной замены указателей на символьные массивы в C++
void swapPointers(char *&a, char *&b)
{
char *temp = a;
a = b;
b = a;
}
Однако это не скомпилировано (и при добавлении отбрасываний компиляция указателей в конечном итоге указывает на неправильные/странные местоположения).
Может ли кто-нибудь помочь?
Спасибо!
Хммм, не совсем, Пол: `Ошибка: невозможно преобразовать параметр 1 из 'char (*) [10]' в 'char **'` Я получаю ту же ошибку с исходным кодом, который я опубликовал (и введите- кастинг создает ошибки логики во время выполнения в обоих случаях). – Cameron 2008-09-24 02:49:32