char * var="string"; var[1]='3'; cout<<var;
I don't get any compiler error . But the program terminates. Why?
char * var="string"; var[1]='3'; cout<<var;
|
|
|
#include<iostream>
#include<conio.h>
#include<stdio.h>
using namespace std;
int main()
{
char * var = "var";
var[1]='3';
cout<<var;
_getch();
return 0;
}
const char* var = "var"; var = "abc";
const char* var = "var"; var[0] = 'a';
Edited by chili5, 20 February 2012 - 05:41 AM.
char var[SIZE] = "var"; var[1]='f';where SIZE is size of "var" + 1 or more. But this is true only for the character 1 byte. One character may take to 6bytes in UTF.
char * p ="var";and
const char * p ="var";
char *var1 = "test1"; // Compiler has warning char *var2 = "test2"; // Compiler has warning const char *var3 = "test3"; // Compiler has warning char * const var4 = "test4"; // Compiler has warning char var5[6] = "test5"; // Ok var2 = var1; // Ok var3 = var1; // Ok var4 = var1; // Error var2[1] = 'z'; // error var3[1] = 'z'; // error var4[1] = 'z'; // error var5[1] = 'z'; // Ok
char *v1; const char *v2; const char *v3; v1 = new char[10]; v1[1] = 't'; // Ok v2 = new char[10]; v2[1] = 't'; // Error v3 = v1; v3[1] = 't'; //Error
freiza said:
char *var ="conststring"; and const char *var ="conststring";It Line is sample very bad code for beginner. Because it is difficult to understand what's going on in this line
0 members, 1 guests, 0 anonymous users