我有使用數組來實現堆棧代碼,這裏的完整代碼:here堆棧:不能推幾個字符到數組
的情況是,爲什麼我不能推多個字符,但 只有一個字符? 但我一直在點擊一些變量在一個數組的形式使用struct
她推 一些字符初始化:
struct stackMhs {
char nama[10];
char npm[10];
char telp[10];
int size;
};
struct stackMhs stackMhsbaru;
這是push()
函數的參數,這將是數據的內容功能main()
:
void push(char nm, char np, char tel) {
if(stackMhsbaru.size != 10) {
stackMhsbaru.nama[stackMhsbaru.size + 1] = nm;
stackMhsbaru.npm[stackMhsbaru.size + 1] = np;
stackMhsbaru.telp[stackMhsbaru.size + 1] = tel;
stackMhsbaru.size++;
}
else {
printf("stack is full!");
}
}
問題是,當我使用'
填寫的數據是一樣的push('a','b','c');
功能push()
只有一個字符時,在編譯沒有錯誤,但是當我使用"
如push("aa","bb","cc");
當編譯時錯誤:
main.c: In function 'main':
main.c:60:6: warning: passing argument 1 of 'push' makes integer from pointer without a cast [-Wint-conversion]
push("aa", "bb", "cc");
^
main.c:23:6: note: expected 'char' but argument is of type 'char *'
void push(char nm, char np, char tel) {
^
main.c:60:12: warning: passing argument 2 of 'push' makes integer from pointer without a cast [-Wint-conversion]
push("aa", "bb", "cc");
^
main.c:23:6: note: expected 'char' but argument is of type 'char *'
void push(char nm, char np, char tel) {
^
main.c:60:18: warning: passing argument 3 of 'push' makes integer from pointer without a cast [-Wint-conversion]
push("aa", "bb", "cc");
^
main.c:23:6: note: expected 'char' but argument is of type 'char *'
void push(char nm, char np, char tel) {
^
我的問題是:任何解決辦法嗎?
你的推送功能以「炭」參數,則必須更換它通過char *或字符串數據類型 – Berkay92
「size」初始化在哪裏? – sjsam