Я написал программу, в которой в основной функции я объявляю массив указателей, а затем я вызываю функцию, которая разбивает данное предложение, а затем хочет назначить его массиву указателей в main()
. Я не могу этого сделать. Не могли бы вы проверить приведенный ниже код:Удвоение двойного указателя в C
int main(void)
{
char *data[3];
allocate(data);
/* Unable to print the strings here */
printf("Main is %s\n", data[0]);
printf(""
}
void allocate(char **dt)
{
int i;
char buf[] = "The great Scorpion";
char delims[] = " ";
size_t len;
char *p;
char *result = NULL;
result = strtok(buf," ");
*dt = result;
int j = 1;
while(result!=NULL)
{
result = strtok(NULL, delims);
dt[j]=result;
j++;
}
/* able to print values here */
printf("result is %s\n", dt[0]);
printf("result is %s\n", dt[1]);
printf("result is %s\n", dt[2]);
}
Может ли кто-нибудь помочь мне?
Я предполагаю, что может быть какая-то проблема с функцией strtok, которую я думаю.IF Я передаю строку непосредственно в функции allocate, я могу получить эти значения, отраженные в основной функции. – 2009-07-22 18:26:20
В чем проблема с указанным кодом? Каков фактический вопрос, на который вы хотите ответить? – jalf
Я хочу, чтобы строки, выделенные в функции выделения, отражались в основной функции. – 2009-07-22 18:28:42