[問題] 關於malloc與include問題

作者: jacky1989   2016-12-02 01:04:54
開發平台(Platform): (Ex: Win10, Linux, ...)
VS2010
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
C
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
std. library
問題(Question):
1.在做字串malloc時,是否需要預留最後一個結束位元?('\0')
EX: tmp=(char *)malloc(5);
sprintf(tmp,"abcde"); //此做法正確嗎?
2.我相信大家都有使用自己設計的函式庫的習慣,那以前學的是要把自己的c file放進去一起做compile
如果今天我在程式裡面直接用include的方式是否可以?
EX:
#include<stdlib.h>
#include<stdio.h>
#include"self_lib.cpp" //這是可以的嗎?
以上兩個問題,感謝
作者: LPH66 (-6.2598534e+18f)   2016-12-02 01:05:00
1. 要, 因為例如 "abcde" 佔的大小就是 6 byte2. 語法不阻止你, 但最好不要, 尤其你又放在同專案編譯這會造成連結時會發現兩個同名東西會不知道怎麼辦
作者: b0920075 (Void)   2016-12-02 07:45:00
1.off by one
作者: ilms49898723 (LittleBird)   2016-12-02 21:31:00
2. 用#ifndef包起來不就解決了?

Links booklink

Contact Us: admin [ a t ] ucptt.com