C語言在處理變量賦值的情況下經常使用到函數memcpy();
memcpy( )函數的使用方法如下:
void * memcpy (void * dest ,const void *src, size_t n);
說明:memcpy()用來拷貝src所指的內存內容前n個字節到dest所指的內存地址上。與strcpy()不同的是,memcpy()會完整的複製n個字節,不會因爲遇到字符串結束'\0'而結束。
memcpy()函數使用過程中一般不會出現什麼問題,使用特定的數據類型,然後根據數據類型確定該數據類型所佔的字節數;
--------------------------------------------------------------
函數的變量賦值易錯點,使用指針過程中,float型轉double類型:
例如:
void test(float val[3]){
printf("function test\r\n");
}
void main(){
double g_val[3];
test(g_val);//有人會理解爲這裏小類型轉化爲大類型比較正常,不會發生精度損失,但是重點在於他們所佔的字節數不一樣,這裏傳進來的是指針,所以得到的值並不是我們需要的,存在越界的情況,所以值非法;
}
切記:只用指針的時候一定要注意數據類型匹配;