|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 酴醾 于 2019-4-7 19:30 编辑
- #include <stdio.h>
- #include <stdlib.h>
- int JagArray(void);
- int main(void)
- {
- JagArray();
-
- return 0;
- }
- int JagArray(void)
- {
- int a1 = 5;
- int a2[] = {7, 10, 8, 7, 9};
- int i, j;
- char **jag = NULL;
-
- jag = (char **)malloc(a1 * sizeof(char *));
- if (jag = NULL) return 1;
- for (i = 0; i < a1; i++)
- {
- jag[i] = (char *)malloc(a2[i] * sizeof(char));
- for (j = 0; j < a2[i] - 1; j++)
- *(jag[i] + j) = 'A' + j;
- *(jag[i] + j) = '\0';
- }
- for (i = 0; i < a1; i++)
- {
- printf("%s\n", jag[i]);
- free(jag[i]);
- }
- free(jag);
- return 0;
- }
复制代码
第二个malloc那里 jag[i] = (char *)malloc(a2[i] * sizeof(char)); 会内存分配错误
为什么? 求助
- if (jag = NULL) return 1;
复制代码
改成
- if (jag == NULL) return 1;
复制代码
|
|