Click here to Skip to main content
15,893,668 members
Home / Discussions / C#
   

C#

 
GeneralRe: Should 0.5 round up or down? Pin
Richard MacCutchan30-Jan-24 8:20
mveRichard MacCutchan30-Jan-24 8:20 
GeneralRe: Should 0.5 round up or down? Pin
jschell31-Jan-24 4:51
jschell31-Jan-24 4:51 
GeneralRe: Should 0.5 round up or down? Pin
Richard MacCutchan31-Jan-24 6:43
mveRichard MacCutchan31-Jan-24 6:43 
GeneralRe: Should 0.5 round up or down? Pin
trønderen31-Jan-24 10:43
trønderen31-Jan-24 10:43 
GeneralRe: Should 0.5 round up or down? Pin
Richard Deeming31-Jan-24 22:35
mveRichard Deeming31-Jan-24 22:35 
GeneralRe: Should 0.5 round up or down? Pin
jschell1-Feb-24 6:00
jschell1-Feb-24 6:00 
GeneralRe: Should 0.5 round up or down? Pin
Richard MacCutchan31-Jan-24 22:42
mveRichard MacCutchan31-Jan-24 22:42 
GeneralRe: Should 0.5 round up or down? Pin
jschell1-Feb-24 5:42
jschell1-Feb-24 5:42 
GeneralRe: Should 0.5 round up or down? Pin
Richard MacCutchan1-Feb-24 5:55
mveRichard MacCutchan1-Feb-24 5:55 
QuestionQuestion about (char* from string) ,(string from char*) and (char* to char) Pin
Jens Eckervogt19-Jan-24 8:24
Jens Eckervogt19-Jan-24 8:24 
AnswerRe: Question about (char* from string) ,(string from char*) and (char* to char) Pin
Richard Andrew x6419-Jan-24 12:03
professionalRichard Andrew x6419-Jan-24 12:03 
AnswerRe: Question about (char* from string) ,(string from char*) and (char* to char) Pin
Dave Kreskowiak19-Jan-24 12:35
mveDave Kreskowiak19-Jan-24 12:35 
GeneralRe: Question about (char* from string) ,(string from char*) and (char* to char) Pin
Jens Eckervogt19-Jan-24 15:15
Jens Eckervogt19-Jan-24 15:15 
GeneralRe: Question about (char* from string) ,(string from char*) and (char* to char) Pin
Richard MacCutchan19-Jan-24 22:30
mveRichard MacCutchan19-Jan-24 22:30 
GeneralRe: Question about (char* from string) ,(string from char*) and (char* to char) Pin
Jens Eckervogt19-Jan-24 23:52
Jens Eckervogt19-Jan-24 23:52 
GeneralRe: Question about (char* from string) ,(string from char*) and (char* to char) Pin
Richard MacCutchan20-Jan-24 0:18
mveRichard MacCutchan20-Jan-24 0:18 
GeneralRe: Question about (char* from string) ,(string from char*) and (char* to char) Pin
Jens Eckervogt20-Jan-24 5:31
Jens Eckervogt20-Jan-24 5:31 
GeneralRe: Question about (char* from string) ,(string from char*) and (char* to char) Pin
Dave Kreskowiak20-Jan-24 4:52
mveDave Kreskowiak20-Jan-24 4:52 
AnswerRe: Question about (char* from string) ,(string from char*) and (char* to char) Pin
Gerry Schmitz19-Jan-24 16:41
mveGerry Schmitz19-Jan-24 16:41 
AnswerRe: Question about (char* from string) ,(string from char*) and (char* to char) Pin
jschell22-Jan-24 5:34
jschell22-Jan-24 5:34 
GeneralRe: Question about (char* from string) ,(string from char*) and (char* to char) Pin
Jens Eckervogt22-Jan-24 14:17
Jens Eckervogt22-Jan-24 14:17 
SuggestionRe: Question about (char* from string) ,(string from char*) and (char* to char) Pin
Richard Deeming29-Jan-24 3:56
mveRichard Deeming29-Jan-24 3:56 
Quote:
C#
char[] charArr = new char[str.Length];
for (int i = 0; i < str.Length; i++)
{
    charArr[i] = str.ToCharArray()[i];
}
That code is horrendously inefficient!

Every call to the ToCharArray method[^] creates a new array containing a copy of every character in the string.

For a string of 100 characters, you are creating 101 copies of that string, just to return a single copy.

Either use:
C#
char[] charArr = new char[str.Length];
for (int i = 0; i < str.Length; i++)
{
    charArr[i] = str[i];
}
or simply:
C#
char[] charArr = str.ToCharArray();

Quote:
C#
fixed (char* charPtr = charArr)
{
    return charPtr;
}
As suggested by the enclosing braces, the fixed keyword[^] pins a managed object until the end of the enclosing block.

You return the pointer from the method, which escapes the fixed block. Once you do that, there is no guarantee that the pointer will still be valid. The GC is free to move the array around in memory as much as it wants. Whilst it may appear to work in your simple test, you can guarantee that as soon as you try to do this in "real" code running on a production system, the GC will kick in at the most inconvenient moment, move your array, and leave you with either an impossible-to-diagnose crash, or worse, corrupt data.

It's not entirely clear what you're trying to do with these functions. But what is clear is that they're not going to do what you expect them to.



"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer

QuestionHow to customize the default .Net Framework Validation Error Messages Pin
Fokwa Divine11-Jan-24 3:30
Fokwa Divine11-Jan-24 3:30 
AnswerRe: How to customize the default .Net Framework Validation Error Messages Pin
Pete O'Hanlon11-Jan-24 3:46
mvePete O'Hanlon11-Jan-24 3:46 
GeneralRe: How to customize the default .Net Framework Validation Error Messages Pin
Fokwa Divine11-Jan-24 4:17
Fokwa Divine11-Jan-24 4:17 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.