MrgHOST
V2EX  ›  C

c 语言

  •  
  •   MrgHOST · Aug 3, 2016 · 4483 views
    This topic created in 3752 days ago, the information mentioned may be changed or developed.

    u8 *p="hello";

    为什么程序总是执行错误 而编译能通过

    21 replies  •  2016-08-03 16:33:23 +08:00
    linux40
    linux40
    Aug 3, 2016 via Android
    1
    买一本好的参考书吧
    klausroot
    klausroot
    Aug 3, 2016
    2
    编译是肯定是能通过的,"hello"是存在地址的,但不知道你是怎样执行出现错误的?
    jimages
    jimages
    Aug 3, 2016 via Android
    3
    最好把其他代码也贴上去。
    zuoxiaomo
    zuoxiaomo
    Aug 3, 2016
    4
    掐头去尾的代码怎么看?
    wangxn
    wangxn
    Aug 3, 2016 via Android
    5
    少了 const 。楼主后续肯定修改了 p 。
    nightspirit
    nightspirit
    Aug 3, 2016
    6
    u8 是什么?宏么?怎么定义的,还有就是报的什么错额
    jixiangqd
    jixiangqd
    Aug 3, 2016
    7
    已 block ,发现 v2 越来越水了,连提问题都这么表意不清
    jeffersonpig
    jeffersonpig
    Aug 3, 2016
    8
    就这么一句谁知道错哪儿了
    好好学一下怎么提问代码问题再来吧 LZ
    Jolly23
    Jolly23
    Aug 3, 2016 via iPhone
    9
    问问题不会么?啥都不说明白, u8 是啥,内存地址申请了么?
    bp0
    bp0
    Aug 3, 2016❤️1
    10
    u8 应该是 unsigned char 。

    上述语句表示 p 指向了“ hello ”这个字符串的首地址,但是这个字符串是不能修改的。

    如果你使用了类似 p[0] = 'a'; 之类的语句就会遇到运行时错误。
    easing
    easing
    Aug 3, 2016
    11
    这个问题应该是初学者都会迷惑的地方吧,我觉得还是不直接给答案比较好, lz 再好好看看字符串常量和指针吧
    shanechiu
    shanechiu
    Aug 3, 2016
    12
    hxtheone
    hxtheone
    Aug 3, 2016
    13
    写代码不会, 问问题都不会, b 了
    josephok
    josephok
    Aug 3, 2016
    14
    blocked
    pagict
    pagict
    Aug 3, 2016❤️2
    15
    u8 是什么都不知道 楼上各位就开始喷 LZ 不会提问题了 是不是应该反思自己看的代码量不够而不是质疑对方提问的技巧呢

    u8 是在 Linux Kernel 代码中随处可见的数据类型

    #define u8 unsigned char

    遇见自己不知道的,能不能先反思一下到底是自己学识不够没见过,还是别人胡编乱造没水平?
    ragnaroks
    ragnaroks
    Aug 3, 2016❤️1
    16
    虽然我知道 u8 是什么,但是楼主不贴全代码,真没法知道出了什么问题
    zhicheng
    zhicheng
    Aug 3, 2016
    17
    @pagict 兄台你用 define 定义类型?
    pagict
    pagict
    Aug 3, 2016
    18
    @zhicheng 不是我的定义 linux kernel 里的
    zhicheng
    zhicheng
    Aug 3, 2016
    19
    @pagict 看不到用 typedef 的定义,非要举一个错误的例子?
    pagict
    pagict
    Aug 3, 2016
    20
    @zhicheng 是我疏忽了 取证不严谨 多谢赐教
    jasonlz
    jasonlz
    Aug 3, 2016
    21
    "hello" 是 const unsigned char*类型。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2968 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 52ms · UTC 05:24 · PVG 13:24 · LAX 21:24 · JFK 00:24
    ♥ Do have faith in what you're doing.