30.10.2014 Views

o_195h4n6al16jb186b1b2qs7fgssa.pdf

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

object. If reallocsucceeds in allocating a new object, the existing<br />

object will be deallocated; otherwise, the existing object is left<br />

unchanged. Keep a temporary pointerto the existing object since<br />

reallocwill return a null pointer on failure.<br />

dsPIC<br />

®<br />

Language Tools Libraries<br />

DS51456B-page 288 2004 Microchip Technology Inc.<br />

Example: #include /* for printf, sizeof, NULL */<br />

#include /* for realloc, malloc, free */<br />

int main(void)<br />

{<br />

long *i, *j;<br />

if ((i = (long *)malloc(50 * sizeof(long)))<br />

== NULL)<br />

printf("Cannot allocate memory\n");<br />

else<br />

{<br />

printf("Memory allocated\n");<br />

/* Temp pointer in case realloc() fails */<br />

j = i;<br />

if ((i = (long *)realloc(i, 25 * sizeof(long)))<br />

== NULL)<br />

{<br />

printf("Cannot reallocate memory\n");<br />

/* j pointed to allocated memory */<br />

free(j);<br />

}<br />

else<br />

{<br />

printf("Memory reallocated\n");<br />

free(i);<br />

}<br />

}<br />

}<br />

Output:<br />

Memory allocated<br />

Memory reallocated<br />

realloc (Continued)<br />

strtolconverts một chuỗi số và chữ cái az (trường hợp<br />

không nhạy cảm), nơi az đại diện cho số 10-36. Chuyển đổi<br />

dừng lại khi một trong số basenumber là gặp phải. điểm để endptrwill<br />

phần còn lại của chuỗi bắt đầu với nhân vật không thể đảo ngược đầu tiên.<br />

Nếu một lỗi xảy ra nhiều, errnowill được thiết lập.<br />

Ví dụ: # include / * Cho printf * /<br />

# include / * Cho strtol * /<br />

int main (void)<br />

{<br />

char * kết thúc;<br />

char a [] = "-12BGEE";<br />

char b [] = "1234Number";<br />

x dài;<br />

x = strtol (a, và kết thúc, 16);<br />

printf ("String = \"% s \ "dài =% ld \ n", a, x);<br />

printf ("Ngưng tại:% s \ n \ n", kết thúc);<br />

x = strtol (b, và kết thúc, 4);<br />

printf ("String = \"% s \ "dài =% ld \ n", b, x);<br />

printf ("Ngưng tại:% s \ n \ n", kết thúc);<br />

}<br />

Đầu ra:<br />

String = "-12BGEE" dài = -299<br />

Dừng lại ở: GEE<br />

String = "1234Number" dài = 27<br />

Dừng lại ở: 4Number<br />

dsPIC<br />

®<br />

Thư viện Công cụ Ngôn ngữ<br />

DS51456B trang 292 2004 Microchip Technology Inc<br />

strtoul<br />

Mô tả: Chuyển đổi một chuỗi một phần một số nguyên dài không dấu.<br />

Bao gồm:<br />

Prototype: strtoul unsigned dài (const char * s, char ** endptr,<br />

int cơ sở);<br />

Đối số: chuỗi s được chuyển đổi<br />

con trỏ endptr với nhân vật mà tại đó việc chuyển đổi dừng lại<br />

cơ sở số lượng cơ sở để sử dụng trong chuyển đổi<br />

Quay trở lại giá trị: Trả về số chuyển đổi nếu thành công; nếu không, trả về 0.<br />

Ghi chú: Nếu baseis số không, strtolattempts để xác định các cơ sở tự động.<br />

Nó có thể là bát phân, xác định bởi một số không hàng đầu, hệ thập lục phân,

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!