字串(字元陣列char str[])與字元指標(char* str)的關係
文章推薦指數: 80 %
tags: `blog`, `programming-note` 字串(字元陣列char str[])與字元指標(char* str)的關係=== ```C #include.
Published
LinkedwithGitHub
Like
Bookmark
Subscribe
######tags:`blog`,`programming-note`
字串(字元陣列charstr[])與字元指標(char*str)的關係
===
```C
#include
[這篇文章](https://www.cnblogs.com/oomusou/archive/2007/03/04/663234.html)裡面提到,
`charstr[]="hello,world"`
與
`char*str="hello,world"`
所代表的意義是不一樣的,前者是個陣列,後者則如前述所說,是個指向literal的指標。
因此,前述程式碼應改成:
```C
#include
其實超過了也還是可以繼續執行,但在程式結束時會有以下錯誤情況:
>***stacksmashingdetected***
>Aborted(coredumped)
[根據這篇文章](https://blog.csdn.net/haidonglin/article/details/53672208),
>Aninputofstringgreaterthansize10causescorruptionofgccinbuiltprotectioncanaryvariablefollowedbySIGABRTtoterminatetheprogram.Youcandisablethisprotectionofgccusingoption即:stacksmashing是GCC的一种检测“缓存溢出”的保护机制.当分配的内存不够时,会继续执行;但是在程序结束返回时才出现错误提示
其原因為拜訪陣列時超過了陣列的合法長度,但程式會幫你延長,在結束執行時才告訴你錯誤。
---
如果你喜歡這篇文章,請按照程度替我按1~5個讚!
歡迎加入讚賞公民的行列!不需要花費任何金錢,只要你辦個帳號就可以按讚了!
延伸文章資訊
- 1CH8 指標與指標字串Pointer and Pointer- based string - 臺東大學
指標的宣告與定義. ▫ 字元陣列,字串及字串陣列. ▫ 字串的輸入/輸出. ▫ 常用字串處理函式. ▫ 指標與陣列. ▫ 指標與字串 [email protected] 2016.
- 2字串(字元陣列char str[])與字元指標(char* str)的關係
tags: `blog`, `programming-note` 字串(字元陣列char str[])與字元指標(char* str)的關係=== ```C #include.
- 3指標與字串
在〈字元陣列與字串〉談過C 風格字串,本質上就是個字元陣列,而陣列名稱具有指標性質,那可以如下建立字串嗎? char *text =
- 4字串指標陣列詳解 - 程式人生
... 陣列整體的收地址,大小同下行程式碼的值 printf("%p\n",str);//陣列的首地址,即存放內容——字串"abg"的地址,並非'a'的地址 return 0; } /* 指標 ...
- 5char陣列與char指標的區別與聯絡 - 程式人生
char s[10]="hello,world";//使用字串字面值(string literal)來初始化字元陣列(2)已經分配了記憶體,然後進行賦值。 char s[10]; s[0]='h...