You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C语言addsum函数报错:整数转指针无类型转换参数问题求助

问题分析与解决方法

警告根源

你遇到的passing argument 4 of ‘addsum’ makes pointer from integer without a cast警告,核心是调用addsum时第4个参数类型不匹配:函数定义里第4个参数要求是指针类型,但你传入了普通整数,C编译器会强制把整数转成指针使用,这既违反语法规范,也会引发非法内存访问。

调试中断的关联原因

调试器在行循环启动前中断,正是因为错误传入的整数被当作指针后,指向了程序无权访问的内存地址,触发了内存访问错误。

具体解决步骤

  1. 核对函数定义与调用的参数类型
    找到addsum的函数定义,查看第4个参数的类型(比如int*这类指针),再对比调用时传入的值——如果传的是普通整数变量(比如int total;),这里就存在错误。
  2. 修正调用方式
    若函数第4个参数是指针,调用时需传入变量的地址(用&运算符取地址)。示例:
    • 错误调用:
      int sum_val;
      addsum(row_num, col_num, arr, sum_val); // sum_val是整数,不符合指针参数要求
      
    • 正确调用:
      int sum_val;
      addsum(row_num, col_num, arr, &sum_val); // 用&sum_val传入指针
      
  3. 验证函数内部逻辑
    确保addsum内部对第4个指针参数的操作正确(比如用*解引用指针来赋值或读取),避免额外的指针操作错误。

补充说明

如果addsum的第4个参数本来就应该是整数,那问题出在函数定义——你可能误将参数写成了指针类型,改成普通整数类型即可。

内容的提问来源于stack exchange,提问作者clubmix

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 17:15:35