0 0

Lijnux GCC 编程 “段错误”5

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

int main()
{
    int count = 10;
    int *ipcou = 0;
    *ipcou = count;
    printf("%d\n", *ipcou);
    return 0;
}

 再简单不过的C程序,出现段错误,一般多错误是内存溢出。可以肯定是 *ipcou = count; 这一句出现了问题。但是可以肯定的是数组或malloc之后可以消除这个错误,难道GCC 在编译的时候是不给指针分配空间吗?

Linux编程经验很少,望大侠们指教。

C 
2009年11月18日 17:14

1个答案 按时间排序 按投票排序

0 0

采纳的答案

这段代码里,ipcou自身是有分配空间的,其中的值为0(意味着*ipcou指向的是0)。
*ipcou = count意味着从变量ipcou取出值(为0),以该值为赋值的目标地址,然后把count的值赋值到那里去。地址0所在的内存页是受保护的,向它写入就会引发segfault。
如果有int *ipcou = (int*)malloc(...),则在malloc成功获取空间的时候,ipcou的值就会是有效的内存地址,后面的赋值自然就没问题。

2009年11月18日 22:31

相关推荐

    GCC编程简介_gcc_GCC编程_

    **GCC编程简介** GCC(GNU Compiler Collection)是GNU项目的一部分,是一个开源的、跨平台的编译器套件,用于将源代码编译为可执行程序。它支持多种编程语言,包括C、C++、Objective-C、Fortran、Ada、Go等。本...

    gcc编程举例

    在IT领域,GCC(GNU Compiler Collection)是一款广泛使用的开源编译器,支持多种编程语言,如C、C++、Objective-C、Fortran等。本文将深入探讨“gcc编程举例”这一主题,涵盖动态库和静态库的概念,并通过三种不同...

    GCC编程简介

    GCC(GNU Compiler Collection,GNU编译器套件),是由 GNU 开发的编程语言编译器。它是以GPL许可证所发行的自由软件,也是 GNU计划的关键部分。GCC原本作为GNU操作系统的官方编译器,现已被大多数类Unix操作系统...

    gcc编程

    在Linux环境下,GCC(GNU Compiler Collection)是广泛使用的编译器,它支持多种编程语言,如C、C++、Ada、Fortran等。GCC不仅用于编译Linux内核,还用于构建众多开源软件和应用程序。这里我们将重点讨论如何在Linux...

    AVR单片机与GCC编程V1.1.pdf

    ### AVR单片机与GCC编程知识点详解 #### 第一章:AVR单片机开发概述 **1.1 一个简单的例子** 本章节通过一个简单的LED闪烁程序来介绍AVR单片机的基本编程流程。该程序的主要目的是使接在PB0口的LED发光管闪烁。...

    ubuntu下gcc编程入门

    ubuntu下gcc编程入门收藏 准备工作 如果你还没装编译环境或自己不确定装没装,不妨先执行 sudo apt-get install build-essential 如果你需要编译 Fortran 程序,那么还需要安装 gfortran(或 g77) sudo apt-get ...

    gcc编程命令.txt

    这有助于发现可能的编程错误。 17. **-Werror**:将所有警告视为错误,使编译器更加严格。 18. **-MM**:生成Makefile依赖性规则,这通常用于自动化构建过程中。 19. **-v**:显示编译过程中的详细信息,包括...

    avr单片机与gcc编程

    AVR单片机是Atmel公司(现已被Microchip Technology收购)开发的一种高...`AVR_GCC.pdf`这个文档很可能是关于这一主题的详细教程,涵盖了以上提到的知识点,阅读并实践其中的内容,将是深入理解AVR-GCC编程的宝贵资源。

    AVR GCC C语言编程通用脚本

    根据提供的文件信息,本文将详细介绍AVR单片机利用GCC C语言进行编程的相关知识点,特别是如何定义和使用中断函数。 ### AVR GCC C语言编程概述 #### 1.1 AVR单片机简介 AVR(Adaptive Voltage Regulation)是...

    GNU_GCC编程资料

    GNU GCC,全称为GNU Compiler Collection,是GNU项目的一部分,它是一个开源且跨平台的编译器套件,主要用于C、C++、Objective-C、Fortran、Ada、Go等多种编程语言。GCC不仅是一个编译器,它还包含了预处理器、...

    ubuntu下gcc编程入门收藏

    ### Ubuntu 下 GCC 编程入门知识点汇总 #### 一、GCC 安装及配置 **1.1 安装基础编译工具** 在 Ubuntu 系统中安装 GCC 和其他相关工具之前,首先需要确保系统中已经安装了基本的编译环境。这可以通过以下命令来...

    GCC编程初步入门篇

    ### GCC编程初步入门知识点详解 #### 一、GCC简介与重要性 GCC(GNU Compiler Collection)作为GNU项目的一部分,是一款广泛应用于Linux环境下的开源编译器套件。它支持多种编程语言,包括但不限于C、C++、...

    AVR单片机与GCC编程使用方法

    ### AVR单片机与GCC编程使用方法详解 #### 一、引言 AVR单片机作为一款广泛应用的微控制器,因其高性能、低功耗等特点而受到电子工程师们的青睐。GCC (GNU Compiler Collection) 是一个功能强大的开源编译器套件,...

    linux gcc 编程必须

    - **错误检测**:GCC能够进行严格的语法和语义检查,帮助开发者发现并修正代码中的错误。 - **链接功能**:除了编译之外,GCC还提供了链接功能,可以将多个目标文件或库文件链接成一个可执行文件。 #### 三、GCC的...

    GCC编译错误类型

    GCC编译器是GNU项目的一部分,它是一种广泛使用的开源编译器套件,支持多种编程语言,如C、C++、Objective-C、Fortran、Ada等。GCC在编译过程中可能会遇到各种错误,这些错误通常涉及到语法、类型、链接、预处理等...

    艺芯的AVR GCC 编程 v1.2

    ### AVR GCC 编程知识点概览 #### 1. AVR单片机GCC开发概述 - **AVR单片机简介**: - **诞生背景**:1997年,ATMEL公司由A先生和V先生设计并推出了一种全新的8位精简指令集微处理器(RISC),命名为AVR。 - **...

Global site tag (gtag.js) - Google Analytics