saber the saber 2022-10-30 19:23 采纳率: 77.8%
浏览 23
已结题

数组算法演示为神马运行不了啊??

#include <stdio.h>
#include <malloc.h>
#include <stdbool.h>

struct ARRAY{
int cnt;
int *parr;
};

bool init(struct ARRAY *p,int len)
{
p->parr=(int *)malloc(sizeof(int)*len);
if(p==NULL){
printf("invalid");
return false;
}else{
return true;
}
}

void append(struct ARRAY *p,int number)
{
p->parr[p->cnt]=number;
(p->cnt)++;
return;
}

int main()
{
struct ARRAY array;
if(init(&array,10)){
append(&array,1);
append(&array,2);
append(&array,3);
}
free(array);

img

return 0;

}

  • 写回答

1条回答 默认 最新

  • 谢玄. 2022-10-30 19:44
    关注

    不用 free(); 这个区域会在函数完成后自动销毁!
    代码如下:

    #include <stdio.h>
    #include <malloc.h>
    #include <stdbool.h>
    
    struct ARRAY {
        int cnt;
        int *parr;
    };
    
    bool init(struct ARRAY *p, int len) {
        p->parr = (int *)malloc(sizeof(int) * len);
        p->cnt = 0;
        if (p == NULL) {
            printf("invalid");
            return false;
        } else {
            return true;
        }
    }
    
    void append(struct ARRAY *p, int number) {
        p->parr[p->cnt] = number;
        (p->cnt)++;
        return;
    }
    
    int main() {
        struct ARRAY array;
        if (init(&array, 10)) {
            append(&array, 1);
            append(&array, 2);
            append(&array, 3);
        }
        for( int i = 0 ; i < 3 ; i++ ){
            printf("%d =  %d\n",i,(int)(array.parr[i]));
        }
        
        return 0 ;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 11月7日
  • 已采纳回答 10月30日
  • 创建了问题 10月30日

悬赏问题

  • ¥15 pip install后修改模块路径,import失败,需要在哪里修改环境变量?
  • ¥15 爬取1-112页所有帖子的标题但是12页后要登录后才能 我使用selenium模拟登录 账号密码输入后 会报错 不知道怎么弄了
  • ¥30 关于用python写支付宝扫码付异步通知收不到的问题
  • ¥50 vue组件中无法正确接收并处理axios请求
  • ¥15 隐藏系统界面pdf的打印、下载按钮
  • ¥15 MATLAB联合adams仿真卡死如何解决(代码模型无问题)
  • ¥15 基于pso参数优化的LightGBM分类模型
  • ¥15 安装Paddleocr时报错无法解决
  • ¥15 python中transformers可以正常下载,但是没有办法使用pipeline
  • ¥50 分布式追踪trace异常问题