[问题] 关于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