[問題] 關於malloc與include問題

看板C_and_CPP作者時間7年前 (2016/12/02 01:04), 7年前編輯推噓3(302)
留言5則, 3人參與, 最新討論串1/1
開發平台(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" //這是可以的嗎? 以上兩個問題,感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.231.49.211 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1480611897.A.F3F.html

12/02 01:05, , 1F
1. 要, 因為例如 "abcde" 佔的大小就是 6 byte
12/02 01:05, 1F

12/02 01:06, , 2F
2. 語法不阻止你, 但最好不要, 尤其你又放在同專案編譯
12/02 01:06, 2F

12/02 01:06, , 3F
這會造成連結時會發現兩個同名東西會不知道怎麼辦
12/02 01:06, 3F
好的,感謝 ※ 編輯: jacky1989 (61.231.49.211), 12/02/2016 01:07:10 ※ 編輯: jacky1989 (61.231.49.211), 12/02/2016 01:08:29

12/02 07:45, , 4F
1.off by one
12/02 07:45, 4F

12/02 21:31, , 5F
2. 用#ifndef包起來不就解決了?
12/02 21:31, 5F
文章代碼(AID): #1OG5Wvy_ (C_and_CPP)