|
It will be helpfull with little bit of code that you are trying to convert.
char *pszString;
pszString = new char[20];
now pszString can store upto 19 bytes of string.
you can either access it as
pszstring,
if you want to access each char then
*(pszString+index)
or
pszString[index]
hope i answered ur question properly.
|
|
|
|
|
Mr.Prakash wrote:
now pszString can store upto 19 bytes of string.
WRONG!
You allocated 20, right? How can you say it can hold 19 bytes then?
You know, it is starting from 0, that means 0 is the first element.
Rickard Andersson
Here is my card, contact me later!
UIN: 50302279
Sonork: 37318
|
|
|
|
|
i allocated 20 bytes, 19 bytes for some string and the 20th for \0
|
|
|
|
|
But ASCII 0 is still a valid character, it just happens to be a special one. Allocating 20 bytes on the heap means you can store 20 bytes.
"The pointy end goes in the other man." - Antonio Banderas (Zorro, 1998)
|
|
|
|
|
DavidCrow wrote:
Allocating 20 bytes on the heap means you can store 20 bytes.
yep but you cant store 20 'A's
|
|
|
|
|
Of course not. I was simply saying that your "now pszString can store upto 19 bytes of string" comment was off by one.
"The pointy end goes in the other man." - Antonio Banderas (Zorro, 1998)
|
|
|
|
|
Thanks for reply, I have a problem now, see this code:
for(int i = 0 ; i < sizeof(mypointer);i++)
buffer1[i] = *(val+i);
sizeof(mypointer) cause the loop only run 3 times and other chars do not copy to array , if I change it to a larger number like 200 it works ok but I don't know how to get size of it dynamiclly.
Mazy
"A bank is a place that will lend you money if you can prove that you don't need it." - Bob Hope
|
|
|
|
|
Mazdak wrote:
sizeof(mypointer)
Change to:
strlen(mypointer)
When you do sizeof of a pointer it returns the size of the pointer, not the length of the string.
Rickard Andersson
Here is my card, contact me later!
UIN: 50302279
Sonork: 37318
|
|
|
|
|
Thanks again Rickard.
Mazy
"A bank is a place that will lend you money if you can prove that you don't need it." - Bob Hope
|
|
|
|
|
change it to this way.
for(int i = 0 ; *(val+i)!=NULL;i++)
buffer1[i] = *(val+i);
since pointers are always 4 bytes sizeof(anypointer) will always return 4
|
|
|
|
|
Mazdak wrote:
but I don't know how to get size of it dynamiclly.
strlen will give you the size of the string pointed by the pointer.
|
|
|
|
|
Thanks.
Mazy
"A bank is a place that will lend you money if you can prove that you don't need it." - Bob Hope
|
|
|
|
|
If I understand you, you want to copy the data from a char* to a unsigned char[]?
char* p = "bla bla";
unsigned char uch[WHATEVER_SIZE];
strcpy(reinterpret_cast<char*>(uch), p);
cout << uch << endl;
Rickard Andersson
Here is my card, contact me later!
UIN: 50302279
Sonork: 37318
|
|
|
|
|
Yah, thats what I want. Thanks.
Mazy
"A bank is a place that will lend you money if you can prove that you don't need it." - Bob Hope
|
|
|
|
|
Hello,
I have an ".Emf" file on my harddisc,Which I would like to display to screen.
I used the "PlayEnhMetaFile" function for displaying the emf to screen,so far.But It has some problems displaying certain kind of EMF files.
Is there any other way by which I could display the Emf File other than using the "PlayEnhMetaFile" or "PlayMetaFile" functions.
Could any one show it with a piece of sample Code.
Thanks..
|
|
|
|
|
This isn't exactly VC++ but I'm having difficulty with the InstallShield that comes bundled with it so...
At the end of installation, in the "Finished" dialog, I want to give the user the option to display the readme file and launch the program. I know how to add those the text for those options and read the results of the user's selection but how do I actually perform those operations?
In the InstallShield script, how do you display a text file in Notepad and launch the installed software?
|
|
|
|
|
Anybody know how delete operator works over dynamically allocated 2-D array ? How is come to know about the bytes allocated ?
Vikram S
|
|
|
|
|
The memory location is contiguous.
Kuphryn
|
|
|
|
|
Yes, I meant generally arrays are allocated in continous memory locations.The issue is not that. How the delete operator comes to know about "How many bytes to be freed?"
|
|
|
|
|
I would say it deallocates memory until there is a NULL.
Kuphryn
|
|
|
|
|
hey in case of string it's quite okey. But what if i have array of intergers? and NULL =0 ?
|
|
|
|
|
can anyone help me regarding enabling dhcp automatically.
The program should change the network properties to obtain ip address dynamically.
I tried dhcpsvc and iphlpapi but i cant make it to work. anyone???
Thanks in advance.
Conrad
|
|
|
|
|
To enable DHCP:
HKEY hKey;
DWORD dwEnable = 1;
RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SYSTEM\CurrentControlSet\Services\{5AE5DC8F-790F-4DA3-B5EF-492139A60ED7}\Parameters\Tcpip", 0, KEY_WRITE, &hKey);
RegSetValueEx(hKey, "EnableDHCP", 0, REG_DWORD, &dwEnable, sizeof(dwEnable));
const char szTemp[] = "0.0.0.0";
RegSetValueEx(hKey, "IPAddress", 0, REG_MULTI_SZ, (const BYTE *) szTemp, sizeof(szTemp) + 1);
RegSetValueEx(hKey, "SubnetMask", 0, REG_MULTI_SZ, (const BYTE *) szTemp, sizeof(szTemp) + 1); The bold interface will need to be changed accordingly.
"The pointy end goes in the other man." - Antonio Banderas (Zorro, 1998)
|
|
|
|
|
Thank you very much for the reply, after this how do i restart my network connection in order for the changes in the registry will take effect??
Another big thanks in advance.
|
|
|
|
|
I'm not sure. See if IpReleaseAddress() and IpRenewAddress() do anything useful.
"The pointy end goes in the other man." - Antonio Banderas (Zorro, 1998)
|
|
|
|