gpt4 book ai didi

c - C 中 char 数组的动态内存分配问题

转载 作者:行者123 更新时间:2023-11-30 21:01:45 25 4
gpt4 key购买 nike

我正在尝试用 c 语言编写一个程序,为维度为 n,m 的“char”数组分配内存。下面是我尝试过的,但每次运行它时,无论我给出什么尺寸,它都会返回 -2 的值,甚至不会打印“内存分配错误”。大家觉得怎么样?

#include <stdio.h>
#include <stdlib.h>

int main(void){
int i,j,n,m;
char **p;
scanf("%d %d",&n,&m); //get array dimensions
p=malloc(n*sizeof(char *));
if (p==NULL){
printf("Error in memory allocation.\n");
return -1;
}
for (i=0;i<n;i++){
p[i]=malloc(m*sizeof(char));
if (p[i]==NULL)
printf("Error in memory allocation.\n");
return -2;
}
}

谢谢!

最佳答案

    if (p[i]==NULL)
printf("Error in memory allocation.\n");
return -2;

必须是

    if (p[i]==NULL) {
printf("Error in memory allocation.\n");
return -2;
}

一些编码指南要求始终将 {} 与 if 语句(即使是单个语句)放在一起以避免此类问题。

关于c - C 中 char 数组的动态内存分配问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34479701/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com