Я действительно не знаю, как это объяснить. Пожалуйста, несите меня.
Я пытаюсь передать 2 двумерный массив в функцию string[][]
, и в этой функции я собираюсь создать указатель, который указывает на массив, который я прошел. Я буду делать сравнения элемента в string[][]
Как создать массив указателей для двумерного массива
//From main
char string[3][3] = {"cat","dog","bat"};
//From function
declare a pointer which points to string;
if (strcpm(string[1],string[2]) == 1)
{
pointer[1] value set to address of string[2];
pointer[2] value set to address of string[1]
}
printf("%s", *(pointer));
Я не хочу изменять string[3][3]
, после чего функция перестанет функционировать без возврата
У меня есть идея, но я не знаю, как объявить pointer
, пожалуйста, помогите мне. Благодаря! Визуализируйте
In main In function
string ptr
cat 1000
dog 1008
bat 1012
Do compare
dog > bat
ptr[3] = address of dog;
ptr[2] = addess of bat;
printf("%s", *(ptr+1);
printf("%s", *(ptr+2);
quit function, return nothing
Должно ли 'strcpm' быть' strcmp'? –
Вам нужно показать нам код, который вызывает эту функцию, показывая нам, как создается 2D-массив строк.Вы также должны показать нам схему функции, которую вы создаете, чтобы выполнить работу - ту, которая содержит сравнение строк и присваивание «указателю». Мы не можем сказать, что вы не делаете неправильно, без этой информации. Простым массивом указателей является 'char * pointer [3];' (это позволит вам указывать указатель [1] 'и' указатель [2] ', но помните C массивы индексов от 0, а не 1). –
Вы собираетесь каким-то образом вернуть эти значения указателя, которые вы вводите внутри функции? Или они используются только в этой функции как часть определения того, что нужно печатать в конце функции? –