Memory safe in D

Alex akornilov.82 at mail.ru
Mon Mar 11 08:16:13 UTC 2024


Hello,

I am interesting D as memory safe language (maybe SafeD?) and 
have written very simple code:

```d
@safe

import std.stdio;

class A {
	this() {
		writeln("[A] Constructor");
	}

	~this() {
		writeln("[A] Destructor");
	}

	void run() {
		writeln("[A] run");
	}
}

int main()
{
	A a;
	a.run();
	writeln("Hello, world!");
	return 0;
}
```

Output is:
```
C:\Software\D\dmd2\windows\bin64\dub.exe run --build-mode separate
     Starting Performing "debug" build using 
C:\Software\D\dmd2\windows\bin64\dmd.exe for x86_64.
     Building dlang-app ~master: building configuration 
[application]
      Linking dlang-app
      Running dlang-app.exe
Error Program exited with code -1073741819

Process finished with exit code 2
```

So I don't see any errors or warnings from compiler when I use 
uninitialized variable `a` and don't see any exception with 
backtrace in runtime (application is build in debug mode).

Is it expected behavior?
Looks like it is not very safe approach and can lead to very 
unpleasant memory errors...


More information about the Digitalmars-d mailing list