A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© peiyunfeng123 初级黑马   /  2015-7-27 22:32  /  806 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

static void calculateAverage(int a, int b, int *c)  
{  
    *c = (a + b);  
}  
  
int main(int argc, const char * argv[])  
{  
  
    int a = 1;  
    int b = 3;  
    int f = 4;  
    int *c = f;  
    calculateAverage(a, b, *c);  
  
    printf("%d\n",c);  
}  


为什么总报错啊?  我觉得没有什么问题啊。它提示的是:Program received signal: "EXC_BAD_ACCESS".肿么办啊?  

6 个回复

正序浏览
//
//  main.m
//  The pragramming in Objective-C
//
//  Created by 林荣安 on 15/7/28.
//  Copyright (c) 2015年 林荣安. All rights reserved.
//
static void calculateAverage(int a, int b, int *c)
        {
            *c = (a + b);
            
            
            
        }

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
     
            
            int a = 1;
            int b = 3;
            int f = 4;
            int *c = &f;
        
            calculateAverage(a, b, c);
            
            printf("%d\n",*c);
        }
    return 0;
}
改成这样子就OK的了。。。。。。
回复 使用道具 举报
一楼正解。。。
回复 使用道具 举报
棒啊。。大神。。
回复 使用道具 举报
1、访问受保护或者不存在的内存空间,导致返回了一个错误的指针;  2、访问未进行内存分配或初始化的内存空间;  3、在对象被释放后仍然采用原来的指针进行访问;  4、采用了[object release]释放对象,但其实对象并未采用 alloc/copy/retain 等形式进行内存分配; 5、其他不合法的内存访问方式;以上是出现这个错误可能的原因!你要打印的C是什么?
回复 使用道具 举报
访问受保护或者不存在的内存空间,导致返回了一个错误的指针
回复 使用道具 举报
static void calculateAverage(int a, int b, int *c)
{
    *c = (a + b);
}

int main(int argc, const char * argv[])
{
   
    int a = 1;
    int b = 6;
    int f = 4;
    int *c = &f; // c是指针,应该接收f的地址
    calculateAverage(a, b, c);// 传值时直接把指针c传过去就可以
   
    printf("%d\n",*c);// *c 取出 指针c的值
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马