error with delete[]

Hi, I'm not sure what's entirely wrong with my delete operator. The function i'm running works fine until it reaches the delete operator and i get an error saying a break point was made at my delete operator. can someone tell me how to fix it and why this error is popping up in the first place?

note: these are snippets of a larger code i'm working on


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
  char* reverse_new(char* s) {
	char*pnew = new char[strlen(s + 1)];
	char*end = pnew + strlen_(s);
	*end-- = '\0';
	while (*s != '\0') {
		*end-- = *s++;
	}
	return pnew;
}



int main(int argc, const char * argv[])
{

	char orig[100] = "indianapolis";
	char addon[100] = "testing";

	std::cout << "this reversed: " << reverse_(orig) << std::endl;
	reverse_(orig);
	std::cout << "if you reverse it again then:" << orig << std::endl;


	std::cout << strchr(orig, 'n') << std::endl;
	std::cout << strrchr(orig, 's') << std::endl;

	std::cout << "after using reversenew, my name is ";
	char* pnew = reverse_new(orig);
	std::cout << reverse_new(addon);
	delete[] pnew;                        //exception is thrown here
 
	return 0;
}
	

// char* pnew = new char[strlen(s + 1)]; should be
char* pnew = new char[ strlen(s) + 1 ];
Topic archived. No new replies allowed.