Postingan lainnya
cara mengubah bahasa c ke bahasa php
Dalam bahasa c Memcpy(skip, skip+shift,(m-shift)*size of(int)); Memset(skip + m-shift,0,shifting(int));
Saya bingung bagaimana dalam bahasa PHP nya
1 Jawaban:
Hal terbesar yang harus diperhatikan adalah bahwa dalam array C (dan string) diidentifikasi oleh pointer ke memori, sementara di PHP mereka adalah warga kelas satu. Jadi pemetaan pointer aritmatika bisa jadi rumit. Secara khusus, pointer ke string yang sudah ada diimbangi relatif terhadap permulaan string, bukan pada awal memori (jadi karakter pertama dari sebuah string selalu berada pada posisi 0). Jadi sepertinya parameter tambahan untuk memcpy diperlukan untuk menentukan tujuan secara lengkap (satu parameter untuk mengidentifikasi string, satu untuk mengidentifikasi offsetnya).
PHP Code:
function memset(&$buffer, $c, $num)
{
$buffer = str_repeat($c, $num);
}
function memcpy(&$dest, $offset, $src, $num=-1)
{
// Often, we want to copy the entire $src. This saves us having to call
// strlen($src) before calling memcpy() in that situation
// memcpy($foo, 0, $bar) will copy ALL of $bar into the initial
// part of $foo.
if($num==-1) $num=strlen($src);
$dest = substr($dest, 0, $offset).substr($src, 0, $num).substr($dest, $offset+$num);
}
PHP Code:
$foos = 'foofoo';
memset($record, ' ', 200);
memcpy($record, 4, $foos, 3);
memcpy($record, 14, $foo); // Doubles as an illustration of the default argument.
memcpy($record, 29, '360');
memcpy($record, 200, "\r\n"); // Look! No buffer overrun!
source: http://board.phpbuilder.com/showthread.php?10312671-memcpy-and-memset-php-equivalents