#include <stdlib.h>
void exit(int status);
main 或任意函數。status=0 表示正常結束;非零表示異常,具體值由作業系統定義(通常 1 為通用錯誤)。return 差異:return 僅返回當前函數;exit 繞過呼叫堆疊直接觸動程式終止流程(會執行 atexit 登記的清理函數、刷新 I/O 緩衝區)。#include <string.h>
void *memset(void *ptr, int value, size_t num);
ptr 起始的 num 個位元組全部設為 value(取低 8 位)。#include <stdio.h>
#include <string.h>
int main() {
char str[] = "abcde";
printf("原始: %s\n", str); // abcde
memset(str, 0, strlen(str)); // 填充 '\0'
printf("填0後: '%s'\n", str); // (空字串)
char str2[] = "abcde";
memset(str2, '0', strlen(str2)); // 填充字元 '0'
printf("填'0': %s\n", str2); // 00000
return 0;
}

memset(str, 0, ...) 是將每個位元組設為 0,對 int 陣列等同於所有元素歸零;但對 float/double/指標不保證語義上為 0.0/NULL(視平台表示法而定)。int 但實際只取低 8 位,故 memset(arr, 0x01020304, n) 等同 memset(arr, 0x04, n)。memset(node, 0, sizeof(*node)) 初始化,避免野指標。本系列將陸續補充 memcpy、strncpy、qsort、bsearch 等高頻函數的深度用法與坑點分析。