unikanie awarii; unikanie nieoczekiwanych wyników
float *pfltBuf;
pfltBuf = (float *) GlobalAlloc(GMEM_FIXED, 4); if (pfltBuf)
memcpy(pfltBuf, pfltŹród, 4);
float * pfltBuf;
pfltBuf = (float *) GlobalAlloc(GMEM_FIXED, 4*sizeof(float));
if (pfltBuf)
memcpy(pfltBuf, pfltŹród, 4*sizeof(float));
Wielkości argumentów funkcji wewnętrznych są zawsze mierzone w bajtach. Należy się upewnić, że dostosowujemy ich wielkość zgodnie z rozmiarem struktury, na której działamy. Jeśli na przykład tworzymy tablicę liczb typu float, to należy pomnożyć długość tablicy przez rozmiar typu float. Podobnie postępujemy w wypadku innych własnych struktur.
Warto zwrócić uwagę na to, że zupełnie inaczej jest w wypadku kodu, który działa na tablicy wskaźników. Wówczas kompilator automatycznie dostosowuje odwołania do tablicy i operacje arytmetyczne na wskaźnikach (zwiększanie, zmniejszanie itp.) na podstawie rozmiaru struktury.
unikanie awarii; unikanie nieoczekiwanych wyników
float pfltBuf[50]; memcpy(pfltBuf, pfltŹród, 4);
float pfltBuf[50];
memcpy(pfltBuf, pfltŹród, 4*sizeof(float));