我的char ** array2 有什么问题;大批?
当 malloc 在 main 函数中时,下面的代码可以正常工作。但是当 malloc 在外部函数中时……这不起作用。
void function(int *var1 ,int array1[][3], char** array2);
main(){
int var1 = 0
int array1[10][3];
char ** array2;
function(&var1 , array1, array2); //Something wrong in here???
printf("Value of var1: %d\n", var1 ); /*Display 5 - OK*/
printf("Value of array1[0][0]: %d\n", array1[0][0] ); /*Display 6 - OK */
printf("Value of array2[0]: %s\n", array2[0]); /*Error - Function stops here */
return;
}
void function(int *var1 ,int array1[][3], char** array2)
{
int i = 0;
array2= malloc(10 * sizeof(char *));
for(i = 0; i<10; i++)
{
array2[i] = malloc(10 * sizeof(char *));
strcpy(array2[i], "SomeText");
}
*var1 = 5;
array1[0][0] = 6;
printf("Value of var1: %d\n", var1 ); /*Display 5 - OK*/
printf("Value of array1[0][0]: %d\n", array1[0][0] ); /*Display 6 - OK */
printf("Value of array2[0]: %s\n", array2[0]); /*Display "SomeText - OK*/
return;
}