定義指標陣列,如何對它輸入字串

2021-05-06 00:03:29 字數 2198 閱讀 5763

1樓:銘記金生

指標要麼是在初始化的時候進行賦值,如:char *p = "hello world!";要麼在之後將指標指向一個已經初始化的記憶體空間,因為只定義而未初始化的指標不會指向任何記憶體空間,是不能對指標指向的地方進行賦值的。

這就是為什麼如果只定義了指標,而為初始化時要使用xalloc或者new來申請空間。 你這樣寫的話,應該是不行的,要麼你在後面加malloc或new申請空間在賦值,要麼直接把指標指向一個已經初始化好的記憶體空間!以上解釋和以下**僅供參考

#include "iostream"

using namespace std;

int main ()

for(i = 0; i <= 2 ; i++)cout <

return 0 ;}

請問要輸入5個字串到一個指標陣列中該怎麼實現?

2樓:小諾的晴空

#include

#include

int main(void)

; //5為5個字串,後面的大括號為初始化int i;

for(i=0;i<5;i++)

for(i=0;i<5;i++)

for(i=0;i<5;i++)

printf("\n");

printf("hello world!\n");

return 0;}

3樓:鳳利

只能讓指標指向該字串

# include

int main(void)

如何將字串用指標陣列輸入和輸出

4樓:飄渺世間天

char* name[3]中name陣列裡是指標啊,而且是未被初始化的指標,這就意味著他們可以指向任何你不知道的地方,你怎麼還可以cin >> name[i]呢,你這個**在我機器上直接crash了,編譯器根本就沒為那些指標指向的地址分配空間,你這樣野蠻地踐踏其他程式使用的記憶體和系統的只讀記憶體是很不禮貌的。

改法1:直接用個二維陣列就ok了,注意第二維空間要足夠。

#include

using namespace std;

int main()

改法二:有點神經的辦法,不過比你寫的正確。

#include

using namespace std;

int main()

for (int i = 0; i < 3; ++i)cout << name[i] << ' ';

return 0;

}改法三:用標準庫string,string的記憶體空間能在執行時動態調整以滿足需求。

#include

#include

using namespace std;

int main()

for (int i = 0; i < 3; ++i)cout << name[i] << ' ';

return 0;}

例如定義一個字元指標陣列,char *name[5];可以按如下方式賦值嗎?for(i=0;i&l

5樓:

"不能直接使用,因為name[i]沒有申請記憶體,這樣可以for(i=0;i<5;i++)補充:完整的ex:

#include

#include

int main()

for(i=0;i<5;i++)

printf(""%s\n"",name[i]);

for(i=0;i<5;i++)

free(name[i]);}"

如何向指標陣列中輸入多個字串

6樓:匿名使用者

大體應該是可以的,不過有幾個地方需要修改下:

str[i] = (char *)malloc(sizeof(char));

這行分配記憶體空間,只分配一個位元組?那肯定不能用%s來輸入,隨便輸入一個字元就越界了,把分配的空間擴大些:str[i] = (char *)malloc(sizeof(char)*128);

scanf_s在使用%s的時候需要多一個引數的吧?

用scanf_s("%s", str[i], 128); 沒有最後的一個引數即所分配記憶體的大小或陣列(緩衝區)大小,scanf_s 不能正確的輸入字串。

c中怎麼定義字串陣列,C中怎麼定義字串陣列

方法一 string abc new string 3 abc 0 1 abc 1 2 abc 2 3 方法二 string abc new string 最笨的方法 string abc new string 4 abc 0 aaa abc 1 bbb abc 2 ccc abc 3 ddd st...

輸入字串按從小到大順序輸出,用指標

int main include include include include using namespace std void swap char p1,char p2 void main void swap char p1,char p2 定義交換兩個字串的函式swap c2660 swap ...

c語言中如何輸入輸出字串

在c語言中,輸入輸出字串有以下兩種方式 1 用scanf printf輸入輸出。scanf printf是c語言的格式化輸入輸出函式,可以用於輸入輸出各種基礎型別,字串 char 也 其支援範圍內。格式化字元為 s。定義char str 100 輸入scanf s str 輸出printf s st...