Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 将指针的值赋给指针数组中的指针_C_Arrays_Pointers - Fatal编程技术网

C 将指针的值赋给指针数组中的指针

C 将指针的值赋给指针数组中的指针,c,arrays,pointers,C,Arrays,Pointers,我想将字符串中的一个字符分配给字符串数组中字符串的第一个字符,等价地,我想将指针数组中的一个指针分配给另一个指针的值 我尝试了以下方法: char ** array=malloc(sizeof(char*)*10); char * str="like"; *(array[0])=*str; *(array[0])=str[0]; **(array)=*str; **(array)=str[0]; 它们似乎在分配第一个指针的值 我不断遇到分段错误。我意识到我误解了创建指针数组时会发生什么。我假

我想将字符串中的一个字符分配给字符串数组中字符串的第一个字符,等价地,我想将指针数组中的一个指针分配给另一个指针的值

我尝试了以下方法:

char ** array=malloc(sizeof(char*)*10);
char * str="like";

*(array[0])=*str;
*(array[0])=str[0];
**(array)=*str;
**(array)=str[0];
它们似乎在分配第一个指针的值


我不断遇到分段错误。

我意识到我误解了创建指针数组时会发生什么。我假设C实际上在数组中创建了指针,而不仅仅是为它们分配空间

修复方法:

char ** array = malloc(sizeof(char *) * 10);
    char tok = *ts; /* create character that has value of a pointer */

    char *token =&tok; /* create new pointer that points to same value as *ts but in a different address */
    array[0]=token; /* assign the pointer */

字符串数组是数组的数组。顺便说一句,您只为第一个数组分配内存,这个数组将容纳另一个数组,这是不正确的,您应该迭代数组的元素,并为另一个数组分配内存。请参阅CYou中的Google2D阵列,您需要正确的思维方式。例如,使用方框图和指针图,一切都会变得清晰。你在哪台计算机上,指针大小可以是分配的10字节的1、2、5或10个除数?@Weather Vane:好的,我刚刚解决了这个问题。@dylan7,请看这里