c語言結構體成員指標初始化問題,C語言結構體成員指標初始化問題

2022-02-23 14:00:59 字數 1229 閱讀 1515

1樓:這個名有人取了

一中只是將name指向「jim」所在的空間,」jim「已經存在了,直接將指標指向他即可,而二中是複製乙個」jim「到name所指向的空間,沒有初始化當然不行

2樓:匿名使用者

第乙個"jim"返回的是乙個位址,是正確的。第二個記憶體分配小了。

3樓:善護

問題:(一)中的student.name並未初始化,為什麼能賦值成功?

stu.name = "jim"; "jim"; 是字串常量,系統自動為他分配了記憶體並儲存這些字元,執行賦值操作是,將這個字串的首位址複製給 stu.name。

(二)偶用strcpy_s函式時有疑問,strcpty(str1,int,str2)中 sizeof(str1)>int&&int>sizeof(str2)

strcpy_s和strcpy()函式的功能幾乎是一樣的。strcpy函式,就象gets函式一樣,它沒有方法來保證有效的緩衝區尺寸,所以它只能假定緩衝足夠大來容納要拷貝的字串。在程式執行時,這將導致不可預料的行為。

用strcpy_s就可以避免這些不可預料的行為。

這個函式用兩個引數、三個引數都可以,只要可以保證緩衝區大小。

三個引數時:

errno_t strcpy_s(

char *strdestination,

size_t numberofelements,

const char *strsource

);兩個引數時:

errno_t strcpy_s(

char (&strdestination)[size],

const char *strsource)

例如:char *str1=null;

str1=new char[20];

char str[7];

strcpy_s(str1,20,"hello world");//三個引數

strcpy_s(str,"hello");//兩個引數但如果:char *str=new char[7];會出錯:提示不支援兩個引數

c#物件初始化問題(可否像c語言的結構一樣

4樓:騰訊電腦管家

include

#include

int jc(int m)

int c(int m,int n)

int main(void)

有關C語言初始化陣列的問題

一般對數 復組初始化可以用製以下方法實現 1 在定 bai義陣列時對陣列元素賦以初du值。如 static int a 10 0,zhi1,2,3,4,5,6,7,8,9 dao 經過上面的定義和初始化後,a 0 0,a 1 1,a 9 9。2 初始化時可以只對一部分元素賦初值。例如 static ...

關於c語言結構體變數成員引用的問題

沒有a 這種賦值方法,改成 a.age 10 a.cass 3 或b age 10 b class 3 都行。另 class是c 關鍵字,若使用的是c 相容的c編譯器,則過不了編譯,應另起一名,如class,或classs等。c語言 結構體變數的引用的問題 你問的兩個問題都跟結構體無關。strcpy...

C語言結構體選單問題,C語言結構體實現多級選單的困惑,請高手解答

首先struct menuitem menupoint main menu 1f 這沒錯,但一般不會這麼用,加括號只是在必要時,如定義行指標獲函式指標時 typedef重定義型別更好 至於為什麼會出現error c230 menuitem unknown struct union enum tag ...