@普派
It didn't work. Therefore, I had to find other ways.
re: strcat在某種特定條件下的優化 roy 2010-08-06 10:09
@hoodlum1980
首先感謝你一直關心拙作,我們都是技術人員,關于技術問題沒什么不能談的,是嗎?
其次,我并沒有用string_append代替strcat的意思,事實上,通常情況下,我都只用strcat,只有在strcat對效率影響實在太大的時候,才考慮string_append。這個例子中直接用strcpy當然可以,但還是需要strlen計算附加串的長度。
re: 自寫的c++命令行參數函數 roy 2010-08-05 09:09
@www
這樣啊,但是我在別的地方看到這段話,好像GPL并不意味著要收費呀
使用GPL協議的代碼制作的程序并非不能拿來賣錢,事實上RMS開始自由運動的第一筆經費就是通過售賣附在磁碟上的Emacs賺來的。GPL的主要規定在于源代碼必須自由公開。
http://www.linuxdiyf.com/viewarticle.php?id=179559
re: strcat在某種特定條件下的優化 roy 2010-08-04 09:16
@hoodlum1980
唉,我反而覺得你沒理解好,你是說每次調用string_append都要先調用strlen嗎?根本不需要,每次string_append就已經計算了下一次執行時的偏移量了
re: strcat在某種特定條件下的優化 roy 2010-08-02 09:24
@hoodlum1980
這個例子中,從來沒用到strlen,而且,這是在某種特定條件下的優化,初始值是空串,長度為0,請看清楚
re: 標準C---關于字符串操作 roy 2010-07-29 17:11
@roy
好像我有點過時了
剛才分別在Linux/Solaris/Tru64/HP-UX下測試這段代碼N次,每次輸出都是0
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
char *tmp = (char *) malloc(1024 * sizeof(char));
printf("%d\n", strlen(tmp));
free(tmp);
return 0;
}
re: 標準C---關于字符串操作 roy 2010-07-29 16:55
char* temp = (char*)malloc(67 * sizeof(char));
Int leng = strlen(temp);
Memset(temp,0,strlen(temp));
Leng = strlen(temp);
兩次leng的值是不一樣的,第一次是正確的值,第二次是0;strlen找的是’\0’,但是不包括’\0’;
strlen遇‘\0’結束,所以,在未memset之前,分配的內存塊都是隨機值,有可能是0,第一次有可能不是固定的值
bool IsLoop(node *head)
{
...
while(p!=NULL&&q!=NULL&&p!=q)
{
p=p->next;
tmp=q->next;
q=tmp->next; // core dump here! if tmp == NULL
}
...
}
re: 將樹型數據結構轉換為圖片并自動排版 roy 2010-07-29 10:42
來學習一下思路先~
re: strcat在某種特定條件下的優化 roy 2010-07-29 09:03
@lwch
原始的strcat一樣會溢出,這個問題應該由調用者負責
re: 告別的話 Roy 2010-06-25 10:16
我x,你要去哪?