如何解决为什么这种动态分配不起作用
docker run -d -p 9600:9600 -p 5044:5044 -v /home/elkuser/elkstack/softwares/logstash_file_docker/logstash.yml:/usr/share/logstash/config/logstash.yml -v /home/elkuser/elkstack/softwares/logstash_file_docker/pipeline-final.conf:/usr/share/logstash/pipeline/logstash.conf cc67e625d974
当我为 docker pull docker.elastic.co/logstash/logstash:7.8.1
和 int a = 0;
int b = 0;
scanf("%d %d",&a,&b);
int** p = NULL;
p = (int**)malloc(sizeof(int*) * a);
for (int k = 0; k < b; k++)
{
p[k] = (int*)malloc(sizeof(int) * b);
}
p[3][0] = 3;
输入 4 3 时,程序无法正常运行。
编码新手
解决方法
错误的迭代次数。使用a
。 @Nate Eldredge
代码也整理好了。
p = malloc(sizeof *p * a);
// for (int k = 0; k < b; k++)
for (int k = 0; k < a; k++) {
p[k] = malloc(sizeof p[k][0] * b);
}
健壮的代码还会检查分配是否成功(未显示)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。