我无法按如下所示将值分配给struct中的指针
。
%<givenName>.%<sn>
。
这不是完整的代码,但是我的 matrixs.depth 现在是 5 ,并且由于我的编译器结果, printf(“ DONE”)从未显示上,并且值也没有分配给Psedo 变量,我不知道为什么
然后我尝试了
strcpy(matrixs.Psedo [i] [x],'0')
代替
matrixs.Psedo [i] [x] ='0';
。
然后出现
警告:传递'strcpy'的参数1使指针从整数开始而无需强制转换 [-Wint-conversion]
,以及 printf(“ DONE); 从不显示
答案 0 :(得分:1)
您需要为Psedo
变量分配内存。它是一个指针数组。他们指向哪里?他们没有指向任何有效的内存位置。访问权限为undefined behavior。
如果您不需要指针数组,那么也可以简单地使用数组。这将不需要像当前情况那样进行显式分配。 char *Psedo[10];
将是char Psedo[10][MAXLEN]
;
第二个strcpy(matrixs.Psedo[i][x], '0')
将是strcpy(matrixs.Psedo[i], "0")
。向strcpy
提供所需的内容...它期望获得指针。在您先前的情况下,char
的整数值被视为指针。这就是警告的原因。这也会导致不确定的行为。