[ create a new paste ] login | about

Link: http://codepad.org/J4xutzdQ    [ raw code | output | fork ]

C, pasted on Aug 6:
#include <stdio.h>
#include <string.h>

// 後ろからコピーする
void memrcpy(void *d, void *s, unsigned int len){
	while(len--) ((char *)d)[len] = ((char *)s)[len]; 
}

void hello1(){
	char hello[128] = "Hello World!"; // 十分過ぎる領域を持つ配列
	// 6文字ずらしてコピーして"Hello Hello World!"になることを期待
	memcpy(&hello[6], &hello[0], 13);	
	puts(hello); // だめ
}

void hello2(){
	char hello[128] = "Hello World!";
	// 6文字ずらしてコピーして"Hello Hello World!"になることを期待
	memrcpy(&hello[6], &hello[0], 13); // 独自のコピーを使う
	puts(hello); // OK
}

void main(){
	hello1();
	hello2();
}


Output:
1
2
Hello Hello Hello H
Hello Hello World!


Create a new paste based on this one


Comments: