魔法虫虫 发表于 2018-6-14 22:47:56

动态管理内存的问题

本帖最后由 魔法虫虫 于 2018-6-14 23:03 编辑


这段代码为什么运行不出来,显示Segmentation fault
不会调试这个东西,也不知道哪里错了


是按这道题写的代码

人造人 发表于 2018-6-14 23:23:44

提问:str 数组有多少个元素?

ba21 发表于 2018-6-14 23:24:16

代码问题大了。
str 这是多大?得先初始化大小吧。
还有i--, 然后又 j<i 。 i还有吗?

参考代码:

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

int main(void)
{
        int i, j = 0;
        int *ptr;

        printf("请输入待录入的整数个数:");
        scanf("%d", &i);
        ptr = (int *)malloc(sizeof(int)*i);
        while(j<i)
        {
                printf("请输入第%d个整数:", j);
                scanf("%d", &ptr);
                j++;
        }

        for(j=0; j<i; j++)
        {
                printf("%d\n", ptr);
        }

}

魔法虫虫 发表于 2018-6-15 07:52:47

人造人 发表于 2018-6-14 23:23
提问:str 数组有多少个元素?

我有点没搞懂那个动态数组,我以为可以先定义一个数组,后面才定义大小的
{:10_257:}

魔法虫虫 发表于 2018-6-15 07:54:05

ba21 发表于 2018-6-14 23:24
代码问题大了。
str 这是多大?得先初始化大小吧。
还有i--, 然后又 j

嗯嗯,我按照你那个改了一下我的代码,做出来了,谢谢
页: [1]
查看完整版本: 动态管理内存的问题