看板 C_and_CPP 關於我們 聯絡資訊
各位大大不好意思,我又有問題了,想請問一下下面的程式 #include<stdlib.h> #include<stdio.h> #include<string.h> struct node { char x[]; int z; }; int main() { node stud ; strcpy(stud.x,"ffffffff"); system("pause"); } 其實我最主要是想說利用x[]這個可以隨意存取名字,但我不想浪費記憶體, 不想事先宣告說x []內的大小,想讓他自己抓,但我再用strcpy(stud.x,"ffffffff"); 這行的時候,自元數字超過七個以後就會開始執行出問題,不知道為什麼? 還是說我不能宣告x[]這樣呢,一定要定義x[]內的大小嗎?我是用dev c++ compiler的 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.70.214.78
littleshan:對,你要事先告訴他大小 11/03 12:37
chchwy:宣告一定要先給大小 11/03 12:45
vm6jp6rmp4:如果我宣告x[10],卻只輸入ab,不就放費8byte了 11/03 12:49
DEATHX:如果不想浪費記憶體,就自己malloc一塊,因為編譯器非算命仙 11/03 12:50
DEATHX:所以你要用多少得自己算出來後自己作記憶體配置喔. 11/03 12:50
vm6jp6rmp4:可以請問一下板上的大大,如果我程式malloc要怎改呢? 11/03 12:57
zerodevil:記憶體很便宜 才8byte就別在意了 11/03 13:02
loveme00835:http://codepad.org/9Tzx4Xkl 寫C語言請把附檔名改成 11/03 13:06
loveme00835:.c 看你定義 stud 沒有給 struct 就知道這是C++, 自 11/03 13:07
loveme00835:訂型別首字請大寫, 用函式當介面來作初使化的動作 11/03 13:08